<template>
  <div class="home-page">
    <van-tabs v-model="activeIndex" animated>
    <van-tab v-for="item in list" :key="item.id" :title="item.name" :name="item.id">
     <ArticleList :id="item.id"></ArticleList>
    </van-tab>
  </van-tabs>
    <!-- 按钮 -->
    <div class="btn-wrapper">
      <geek-icon name="search"></geek-icon>
      <geek-icon name="channel" @click.native="iconClick"></geek-icon>
    </div>
    <!-- 使用弹框组件 -->
    <!-- @update:activeIndex="activeIndex=$event" -->
    <ArticleChannel ref="ArticleChannel"
    :activeIndex.sync="activeIndex"
    :list="list"></ArticleChannel>
  </div>
</template>

<script>
import {channels} from '@/api/home.js'
import  ArticleList from './components/article-list.vue'
import ArticleChannel from './components/article-channel.vue'
export default {
  name:'home',
  components:{
    ArticleList,
    ArticleChannel
  },
  data(){
    return {
activeIndex:0,
list:[]
    }
  },
  watch:{
'$store.state.user.token':{
  async handler(newVal){
    if(newVal){
      const res =await channels()
      this.list=res
      this.activeIndex=this.list[0].id
  console.log('频道列表',res);
    }
  }
}
  },
async created(){
  const res =await channels()
  this.list=res
this.activeIndex=this.list[0].id
  console.log('频道列表',res);
},
activated(){
  console.log('home activated');
},
deactivated(){
  console.log('home deactivated',this.$route);
},
methods:{
  iconClick(){
    //打开弹框组件
    this.$refs.ArticleChannel.isShow=true
  }
}
}
</script>

<style lang="less" scoped>
::v-deep .van-tabs {
   height: 100%;
  display: flex;
  flex-direction: column;  
  .van-tabs__line {
    background: @geek-color;
    height: 2px;
    width: 32px;
  }
  .van-tab {
    color: #9EA1AE;
  }
  .van-tab--active {
    font-size: 18px;
    color: #333;
  }
  .van-tabs__wrap {
    padding-right: 86px;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
  }
  .van-tabs__content {
    flex: 1;
    overflow: hidden;
  }
  .van-tab__pane {
    height: 100%;
  }
}
.home-page {
  .btn-wrapper {
    position: absolute;
    right: 0;
    top: 0;
    width: 86px;
    height: 44px;
    background: #fff;
    display: flex;
    align-items: center;
    .geek-icon {
      flex: 1;
      text-align: center;
      font-size: 18px;
    }
    &::before {
      content: "";
      width: 20px;
      height: 44px;
      position: absolute;
      left: -20px;
      top: 0;
      background: linear-gradient(to right, rgba(255,255,255,0), #fff);
    }
  }
}
</style>
